/*
** Because the GCC ecosystem is run by terrorists, we cannot presume that argc
** and argv have sane values (0 and NULL respectively) on entry to main().
** We thus have to rely upon a linker hack to ensure that main() has non-garbage
** in its arguments.
**
** Multiple MCU vendors fuck this up ... but only for GCC startup files.  IAR or
** Keil or Resenas or whatnot startup files don't have this happening.  Weird.
*/

#include <stdio.h>

#define UNUSED(X) ((void)(X))

extern int __real_main(int, char **);

int __wrap_main(int argc, char **argv)
{
    UNUSED(argc);
    UNUSED(argv);
    return __real_main(0, NULL);
}
